home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / nt / go3d16.zip / GO3D.TXT < prev   
Text File  |  1995-07-18  |  12KB  |  291 lines

  1.                               G O 3 D by Zap
  2.                               ==============
  3.                                   v 1.6
  4.                             zap@lysator.liu.se
  5.                                   950718
  6.  
  7.  
  8. Included files:
  9. ===============
  10.  
  11.     GO3D.EXE          - The executable. Launch again to disable.
  12.     3DFTASK.DLL       - The DLL. This is where all the magic goes!
  13.     CTL3D32.DLL       - The Microsoft 3D dialog box DLL. *IT MUST BE IN
  14.                         WINDOWS/SYSTEM32!* If you already have it (or a
  15.                         newer version of it) there, DELETE it from the
  16.                         GO3D directory!!
  17.     GO3D.INI          - A Sample .INI file.
  18.  
  19.  
  20. INTRO
  21. =====
  22.  
  23. We are all waiting for Windows 95. But '95 is running out. And more and more
  24. nifty stuff keeps getting dropped from Win 95.
  25.  
  26. While waiting, we are running Windows NT. NT is a very nice roboust operating-
  27. system. We like it.
  28.  
  29. But....
  30.  
  31. ....it *LOOKS* like a piece of shit!
  32.  
  33. The '95-ers have nifty 3D-look windows and dialogs.
  34.  
  35. We NT-ers still have the old, boring flat ugly windows and dialogboxes.
  36.  
  37. Did I say "have"? I mean "had". THIS IS WHERE GO3D COMES IN!
  38.                                 ============================
  39.  
  40.  
  41. GO3D does the following:
  42. ------------------------
  43.  
  44. 1. Attaches a 3D frame to all windows
  45.    (Exceptions: The console window can't get a 3D frame, sadly! (It is not
  46.     possible to subclass the window process of a console window!) Also, any
  47.     window that draws the frame itself (doesn't set the WS_THICKFRAME style)
  48.     isn't touched.)
  49.  
  50. 2. Adds CTL3D controls to ALL DIALOG BOXES IN THE SYSTEM!   
  51.  
  52. 3. Windows and Dialogs can be excluded from this process by defining 
  53.    excludes in the GO3D.INI file.
  54.  
  55. 4. Set the size of new windows which has the "let windows decide the
  56.    size" flag set.
  57.  
  58.  
  59. GO3D.EXE and 3DFTASK.DLL should be in the same directory. CTL3D32.DLL MUST
  60. BE IN THE WINDOWS/SYSTEM32 DIRECTORY!!!! (Microsoft requirement).
  61. The GO3D.INI file must also be in the Windows directory!!!
  62.  
  63.  
  64. Incompatible apps and GO3D.INI:
  65. ===============================
  66.  
  67. NOTE: GO3D.INI is loaded into memory when GO3D is launched. THAT MEANS
  68.       THAT CHANGES IN GO3D.INI DOES NOT TAKE AFFECT UNTIL YOU START GO3D.EXE
  69.       AGAIN. That means that you must first launch GO3D.EXE once to uninstall
  70.       the currently running GO3D.EXE, and then a second time to start a new
  71.       GO3D process.
  72.  
  73.  
  74. Some applications are not "compatible" with GO3D. Either they are not
  75. compatible from a visual point of view, i.e. the 3D frame looks like shit
  76. on these applications, (Microsoft Encarta is a nice example, it draws its
  77. own borders, and Go3D borders on top of Encarta borders looks....blearch.)
  78. or they are not "technically" compatible, i.e. the applications crash,
  79. die, explode and melt.  [Please note, that what GO3D really DOES (swapping 
  80. the window procedure under the very nose of the application that really 
  81. owns the window) is "by definition" a DIRTY TRICK. Therefore, it is not 
  82. really strange if some aplications, especially those trying tricks of their 
  83. own, crashes.]
  84.  
  85. To remedy this situation, we have the GO3D.INI file. This file should be in 
  86. your WINDOWS directory, and can look as follows:
  87.  
  88.       [Go3D]
  89.       LogFile=C:\go3d.log
  90.       Exclude1=1,,ENCART95.EXE
  91.       Exclude2=3,MSVCOutputWindow,MSVC.EXE
  92.  
  93.       [NewWindowSize]
  94.       X=700
  95.       Y=700
  96.  
  97.  
  98. The GO3D Section:
  99. -----------------
  100.  
  101. The "[Go3D]" section is used to EXCLUDE certain windows and/or dialogs from
  102. the 3D-painting process. This is done by writing an "Exclude..." line in
  103. the GO3D.INI file. The format of an "Exclude" line is:
  104.  
  105.      Exclude<exclude number>=<flags>,<windowclass>,<exefile>
  106.  
  107. In this string, 'exclude number' is just a number. (You may have a maximum
  108. of 25 excludes). <flags> can be 1 to exclude the window border, 2 to exclude
  109. the addition of CTL3D32.DLL to the dialogs, and 3 to exclude both.
  110. <windowclass> can be the class name of a window to exclude, and <exefile>
  111. is the name of the executable owning the window.
  112.  
  113. You can see in the sample the following line:
  114.  
  115.      Exclude1=1,,ENCART95.EXE
  116.  
  117. This means, that window frames in the application ENCART95.EXE will NOT get
  118. any 3D-look. Note that since flags=1, this only excludes normal windows,
  119. not dialogs.
  120.  
  121. Note however that in this case the 'windowclass' isn't specified. That means
  122. that all windows of that executable is affected. If BOTH 'windowclass' AND
  123. 'exefile' would be specified, both would also have to match before the
  124. window/dialog was excluded from the 3D-beautification-process.
  125.  
  126. So, let's say that you just want to exclude the 3D-look from ONE window in
  127. some application. Then you must know the CLASS NAME of that window. Normally,
  128. 'class names' are internal, and only known to the programmer of the app.
  129. Sure, you could use things like Microsoft Spy++ to find it. But fear not,
  130. GO3D can tell you this too.
  131.  
  132. By adding a setting for "Logfile" in the GO3D.INI (in the example above, it
  133. is set to C:\go3d.log), you will get a file showing all new windows added
  134. to the GO3D beautification process. The file will look something like this:
  135.  
  136.  
  137.      Loaded exclude 1, Type 1, class '' exe 'ENCART95.EXE'
  138.      Loaded exclude 2, Type 3, class 'MSVCOutputWindow' exe 'MSVC.EXE'
  139.      Window: Class='MSVCMainWindow' EXE='msvc.exe'
  140.      Window: Class='WINSERVER' EXE='WINSERVE.EXE'
  141.      Window: Class='MSVCOutputWindow' EXE='msvc.exe' - [Match:Exclude2]
  142.      Window: Class='MSVCChildWindow' EXE='msvc.exe'
  143.      Window: Class='MSVCChildWindow' EXE='msvc.exe'
  144.      Window: Class='MSVCChildWindow' EXE='msvc.exe'
  145.      Dialog: Class='#32770' EXE='GO3D.EXE'
  146.      Window: Class='GO3D' EXE='GO3D.EXE'
  147.  
  148.  
  149. This is what you see when launching GO3D.EXE with Microsoft Visual C++
  150. (MSVC.EXE) running. Here you see all new windows. In our sample, we have
  151. excluded the "MSVCOutputWindow" from the joy of getting the 3D-look. 
  152. This also appears in the logfile.
  153.  
  154. If you have a problematic application, then first set "Logfile" in your
  155. GO3D.INI file. (Remember to turn GO3D.EXE off and on again to re-load GO3D.INI
  156. file!!). Then run the offending application, and watch it crash/be ugly.
  157. Then look in your log-file, and see what the application name (and optionally
  158. class name) of the offending window(s) are. Add this to an Exclude in the
  159. file, yet again re-start GO3D, and try again! If it works, don't forget to
  160. remove the 'Logfile' setting, or you will have a rapidly growing file on 
  161. your system!!
  162.  
  163. If you want, you could make an exclude like:
  164.  
  165.      Exclude1=1,,
  166.  
  167. This would remove the 3D-border from ALL windows, but still add CTL3D32.DLL-
  168. look to all dialogs. Conversly, writing:
  169.  
  170.      Exclude1=2,,
  171.  
  172. ...would do the opposite: No CTL3D32.DLL-look would be used, but there WOULD
  173. be 3D-frames on other windows. If you want to be silly, you could write:
  174.  
  175.      Exclude1=3,,
  176.  
  177. This is the same as not running GO3D at all, so why would you want to do 
  178. that!? :-)
  179.  
  180.  
  181. The NEWWINDOWSIZE Section:
  182. --------------------------
  183.  
  184. Then we can optionally have the "[NewWindowSize]" section. As you know, most
  185. Windows apps start up on a "random" position on the screen. The positioning
  186. isn't so bad, but their default SIZE is always "extending to the right edge
  187. and top of the icon area". When you are starting to work with big screens,
  188. this is a pain in the neck. When I want my tiny little notepad window, and
  189. notepad pops up in the upper left corner of my 1280x1024 screen, I get a 
  190. HUGE notepad, where I wanted a small one. What the settings in this section
  191. does, is to alter any default widths and heights to have a MAX value of the 
  192. given value. So if you never want windows to pop up wider than, say, 700 
  193. pixels, set X=700, as in the sample above. If you want to leave the size
  194. of new windows unrestricted, you can completely remove the "[NewWindowSize]"
  195. section, or just the "X" or "Y" settings if you want. If you are using any
  196. other of the numerous "window sizing app's", remove the section completely.
  197.  
  198.  
  199.  
  200. Known "Problems" you should know about:
  201. =======================================
  202.  
  203. Shutting down GO3D with the process viewer or similar means INSTANT DEATH to
  204. ALL WINDOWS TO WHICH GO3D HAS ATTACHED ITSELF! (Because their window 
  205. procedure, which is in the DLL, suddenly no longer exists!) 
  206. To disable GO3D cleanly, you must LAUNCH IT AGAIN!
  207.  
  208. Since I didn't write the CTL3D32.DLL, I couldn't make it as nifty and self-
  209. uninstalling as GO3D is. MEANING: IF you have a DIALOG visible on screen
  210. onto which GO3D has attached the CTL3D window handler, and you shut down GO3D,
  211. this means that the program with the dialog will crash instantly. (Same 
  212. reason, it's window procedure is destroyed!)
  213.  
  214.  
  215.  
  216. Tips:
  217. =====
  218.  
  219. To make GO3D shine in all it's glory, you should probably increase the 
  220. border widht of your windows. 5 or 6 is a nice number. If you really want
  221. stuff to look 3D, try 8!
  222.  
  223. Also, change the COLORS of the screen elements "Active Title Bar", "Active
  224. Border" and "Inactive Border" to medium gray. Change the color of "Inactive
  225. Title Bar" to some dark color of your choice. That looks Very Kewl....
  226.  
  227. And above all: HAVE FUN! ENJOY!
  228.  
  229.  
  230. LEGAL STUFF:
  231. ============
  232.  
  233. GO3D is Joyware. If you like it, let me know! Gruesome legal penalties
  234. forthcoming for anyone that enjoys the product without informing me! :-)
  235.  
  236. GO3D is created by Zap. As such, I own the program. However, I give anybody
  237. in the world unrestricted right to use it, free. (Yes, FREE. Not even a $0.02
  238. registration fee!). Anybody is also allowed to distribute it, as long as the
  239. following files are kept together: GO3D.EXE, GO3D.TXT (this file), and the
  240. 3DFTASK.DLL file. You MAY NOT charge money for the program itself, but you 
  241. MAY charge a reasonable amount of money for the distribution media. You MAY 
  242. include this on CD-ROM collections, Sharware disk libraries e.t.c.
  243.  
  244. BUT: I also hold no responsibility whatsoever for damage caused by this
  245. program. I have warned you that it kills your entire Windows session if you
  246. shut it down incorrectly. That means that all programs, no matter how 
  247. important the document loaded into them are, will die. Horribly. Screaming.
  248.  
  249. You use the program at your own risk, but also at your own pleasure.
  250.  
  251. IF, however, the pleasure of using this program becomes too great, please
  252. relieve it by sending a happy email, snailmail, or fax, to one of the 
  253. following adresses:
  254.  
  255.  
  256. Email: zap@lysator.liu.se
  257. Smail: Hakan "Zap" Andersson
  258.        St Almby, Hagby
  259.        S-635 05 Eskilstuna
  260.        SWEDEN
  261. Fax:   +46 16 96014
  262.  
  263.  
  264. Over & Out!
  265.  
  266. /Z
  267.  
  268.  
  269. ==============================================================================
  270.  
  271. Version history:
  272.  
  273. v 0.9:  Internal release to friends.
  274.  
  275. v 1.0:  First public release. Uploaded to CICA.
  276.         Now uses "SetProp/GetProp" to store original window procedure instead
  277.         of static data tree. Faster! Cleaner!
  278.         Applies to dialogs too. (Using CTL3D32.DLL)
  279.  
  280. v 1.5:  Updated version.
  281.         Now listens to the GO3D.INI file. Can define new-window width. 
  282.         Can avoid adding the 3D-look to apps/windows/dialogs based on
  283.         appname, classname, or both.
  284.  
  285. v 1.6:  Updated version.
  286.         Fixes the white-rectangle-problem (seen in e.g. file manager) by
  287.         converting all "Static" dialog controls of type SS_SIMPLE to the 
  288.         type SS_LEFTNOWORDWRAP. SS_SIMPLE for some silly reason doesn't 
  289.         listen to the background color!?
  290.  
  291.